﻿using mds.BaseFrameModel;
using mds.ServiceInterface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;

namespace mds.ConfigurationService
{

    [ServiceContract(Namespace = "mds.ConfigurationService.ConfigurationServiceProvider")]
   public interface IConfigurationService
    {
         [OperationContract(Name = "CreateSolution")]
        OperationResult<bool> CreateSolution(SoluationInfo newInfo);
         [OperationContract(Name = "EditSolution")]
         OperationResult<bool> EditSolution(Guid SoluationId, string SoluationName, string SoluationSimple, bool Enable);
         [OperationContract(Name = "DeleteSolution")]
         OperationResult<bool> DeleteSolution(Guid SoluationId);
         [OperationContract(Name = "EnableSolutions")]
         OperationResult<bool> EnableSolutions(Guid[] SoluationId, bool Enable);
         [OperationContract(Name = "DisableSolutions")]
         OperationResult<bool> DisableSolutions(Guid[] SoluationId, bool Enable);
        [OperationContract(Name = "GetSolustions")]
         GridPage<SoluationInfo> GetSolustions(int pageSize,int currentIndex,string searchName);
        [OperationContract(Name = "GetSolution")]
        OperationResult<SoluationInfo> GetSolution(Guid SoluationId);

         [OperationContract(Name = "CreateApp")]
         OperationResult<bool> CreateApp(AppInfo newInfo);
         [OperationContract(Name = "EditApp")]
         OperationResult<bool> EditApp(Guid AppId, string AppName, string AppTitle);
         [OperationContract(Name = "DeleteApp")]
         OperationResult<bool> DeleteApp(Guid AppId);
         [OperationContract(Name = "GetApps")]
         GridPage<AppInfo> GetApps(int pageSize, int currentIndex, string searchName);
         [OperationContract(Name = "GetApp")]
         OperationResult<AppInfo> GetApp(Guid AppId);

         [OperationContract(Name = "CreateAppPlus")]
         OperationResult<bool> CreateAppPlus(AppPlusInfo newInfo);
         [OperationContract(Name = "EditAppPlus")]
         OperationResult<bool> EditAppPlus(Guid AppplusId, string AppPlusName, string AppTitle);
         [OperationContract(Name = "DeleteAppPlus")]
         OperationResult<bool> DeleteAppPlus(Guid AppplusId);
         [OperationContract(Name = "GetAppPluses")]
         GridPage<AppPlusInfo> GetAppPluses(int pageSize, int currentIndex, string searchName);
         [OperationContract(Name = "GetAppPlus")]
         OperationResult<AppPlusInfo> GetAppPlus(Guid AppId);

         [OperationContract(Name = "CreateMdsConfigureInfo")]
         OperationResult<bool> CreateMdsConfigureInfo(MdsConfigureInfo newInfo);
         [OperationContract(Name = "EditMdsConfigureInfo")]
         OperationResult<bool> EditMdsConfigureInfo(Guid Id, string Content);
         [OperationContract(Name = "DeleteMdsConfigureInfo")]
         OperationResult<bool> DeleteMdsConfigureInfo(Guid Id);
         [OperationContract(Name = "GetMdsConfigureInfos")]
         GridPage<MdsConfigureInfo> GetMdsConfigureInfos(int pageSize, int currentIndex, string searchName, Guid SoluationId);
         [OperationContract(Name = "GetMdsConfigureInfosByAppplus")]
         GridPage<MdsConfigureInfo> GetMdsConfigureInfosByAppplus(int pageSize, int currentIndex, string searchName, Guid AppplusId);
         [OperationContract(Name = "GetMdsConfigureInfo")]
         OperationResult<List<MdsConfigureInfo>> GetMdsConfigureInfos(Guid SoluationId, int soluationVersion);
         [OperationContract(Name = "GetMdsConfigureInfo")]
         OperationResult<MdsConfigureInfo> GetMdsConfigureInfo(Guid Id);
       
    }
}
